package main

import "fmt"

func main() {
	/*
		xx := "你好，我是重庆人. hello,i am chinese"
		var count int
		for _, c := range xx {
			if unicode.Is(unicode.Han, c) {
				count++
			}
		}
		fmt.Printf("汉字的个数是: %d\n", count)



		s2 := "how do you do"
		// 按照空格分隔字符串
		s3 := strings.Split(s2, " ")
		// 遍历切片存储到一个map
		m1 := make(map[string]int, 10)
		for _, w := range s3 {
			fmt.Println(w)
			// 1.如果原来map中不存在w这个key，那么出现次数就为1
			if _, ok := m1[w]; !ok {
				m1[w] = 1
			} else {
				m1[w]++
			}
			// 2.如果map中存在w这个key，那么出现次数就+1
		}

		// 累加出现的次数
		for key, value := range m1 {
			fmt.Println(key, value)
		}
	*/

	// 回文判断
	// 字符串从左往右读和从右往左读是一样的，那么就是回文。
	// 上海自来水来自海上 s[0]  s[len(s)-1]
	// 山西运煤车煤运西山
	// 黄山落叶松叶落山黄

	// 把字符串中的字符拿出来放到一个[]rune中
	ss := "山西运煤车煤运西山"

	// []int []string []bool []float64 []byte []rune []map[string]int
	r := make([]rune, 0, len(ss))
	for _, c := range ss {
		r = append(r, c)
	}

	for i := 0; i < len(r)/2; i++ {
		if r[i] != r[len(r)-1-i] {
			fmt.Println("不是回文")
			return
		}

	}
	fmt.Println("是回文")

}
